diff --git a/system/helpers/security_helper.php b/system/helpers/security_helper.php
index 63f0e9c..08dd48a 100644
--- a/system/helpers/security_helper.php
+++ b/system/helpers/security_helper.php
@@ -34,7 +34,7 @@
  * @param	string
  * @param	bool	whether or not the content is an image file
  * @return	string
- */	
+ */
 if ( ! function_exists('xss_clean'))
 {
 	function xss_clean($str, $is_image = FALSE)
@@ -52,7 +52,7 @@
  * @access	public
  * @param	string
  * @return	string
- */	
+ */
 if ( ! function_exists('sanitize_filename'))
 {
 	function sanitize_filename($filename)
@@ -71,7 +71,7 @@
  * dohash() is now deprecated
  */
 if ( ! function_exists('dohash'))
-{	
+{
 	function dohash($str, $type = 'sha1')
 	{
 		return do_hash($str, $type);
@@ -86,9 +86,9 @@
  * @access	public
  * @param	string
  * @return	string
- */	
+ */
 if ( ! function_exists('do_hash'))
-{	
+{
 	function do_hash($str, $type = 'sha1')
 	{
 		if ($type == 'sha1')
@@ -96,7 +96,7 @@
 			if ( ! function_exists('sha1'))
 			{
 				if ( ! function_exists('mhash'))
-				{	
+				{
 					require_once(BASEPATH.'libraries/Sha1'.EXT);
 					$SH = new CI_SHA;
 					return $SH->generate($str);
@@ -109,7 +109,7 @@
 			else
 			{
 				return sha1($str);
-			}	
+			}
 		}
 		else
 		{
@@ -117,7 +117,7 @@
 		}
 	}
 }
-	
+
 // ------------------------------------------------------------------------
 
 /**
@@ -126,18 +126,18 @@
  * @access	public
  * @param	string
  * @return	string
- */	
+ */
 if ( ! function_exists('strip_image_tags'))
 {
 	function strip_image_tags($str)
 	{
 		$str = preg_replace("#<img\s+.*?src\s*=\s*[\"'](.+?)[\"'].*?\>#", "\\1", $str);
 		$str = preg_replace("#<img\s+.*?src\s*=\s*(.+?).*?\>#", "\\1", $str);
-			
+
 		return $str;
 	}
 }
-	
+
 // ------------------------------------------------------------------------
 
 /**
@@ -146,7 +146,7 @@
  * @access	public
  * @param	string
  * @return	string
- */	
+ */
 if ( ! function_exists('encode_php_tags'))
 {
 	function encode_php_tags($str)
